# Supplementary Materials

## General Notes

Experiment 1 is sometimes referred to as "scale"
Experiment 2 is sometimes referred to as "JND"

## Descriptions of the content

### ./analysis/

Contains the anonymized data and the analysis scripts for Experiment 1 and Experiment 2.

./analysis/data_pickles/ contains the anonymized raw data.

./analysis/exp1_scale/EXP2_Read_and_Clean and ./exp2_JND/EXP2_Read_and_Clean Python Jupyter scripts transform the raw data into the clean datasets for their respective experiments. The output is stored in ./data_clean/. This cleaning includes the detection and filtering out of incomplete participant data sets and of data sets from participants who were deemed to not follow the required instructions.

./analysis/exp1_scale/Exp1_MCMC_analysis and ./exp2_JND/Exp2_MCMC_analysis R Jupyter scripts perform the main part of the analysis. Generally, these scripts only contain analysis procedures which apply to a single parameter (which parameter it is can be decided by commenting or uncommenting diffent lines setting a variable at the beginning of the script).

./analysis/exp1_scale/Multi-parameter-results-and-graphs and ./exp2_JND/Multi-parameter-results-and-graphs contain analysis or graph generations that go across multiple parameters.

./analysis/data is empty because this folder originally contains the raw unanonymized data.

### ./detailed_result_tables/

This folder includes two spreadsheets that contain extended versions of the result tables in the paper. Specifically, they include the parameter values for the estimated optimal levels, in both experiments, at which parameters are most distinguishable from each other (2, 3, 5 and 7 classes for Exp1 and JND-separated points for Exp2).

### ./experimental_procedure/ 

The found_words.txt contains the list of words that we used for both experiments.

The ./experimental_procedure/app/ folder contains the code used in the server to run the experiments.

### ./parameter_ranges_procedure/

This folder contains two examples of the generated inspection pdfs that we generated to determine the ranges of the parameters.

### ./additional_materials/

This folder contains two additional documents. One is the table of parameters of representative and parametric fonts, the other is an additional figure of the models of Experiment 1 but at the stage of model selection (i.e., averaging across measurements of a participant).

## Content Referenced from the Paper

List of items of interest referenced in the paper.

- Two examples of the generated inspection pdfs to determine the limits of the parameters are in the ./parameter_ranges_procedure folder.

- The font files used in the experiment are (in woff format) in the ./experimental_procedure/app/assets/fonts/ folder.

- A table comparing the parameter ranges of our font and popular and extreme fonts is in ./additional_materials/parameter_values.pdf.

- The anonymized data of Experiments 1 and 2 is in ./analysis/data_pickles, in a python pickle format. The  ./analysis/exp2_JND/EXP2_Read_and_Clean.ipynb cleans up the data and places it in the ./analysis/data_clean/ folder in several formats.

- The core analysis script (in R, Jupyter) for Experiment 1 is ./analysis/exp1_scale/Exp1_MCMC_analysis.ipynb . The ./analysis/exp1_scale/Multi-parameter-results-and-graphs.ipynb file contains parts of the analysis that compare parameters to each other.

- The core analysis script (in R, Jupyter) for Experiment 2 is ./analysis/exp2_JND/Exp2_MCMC_analysis.ipynb . The ./analysis/exp2_JND/Multi-parameter-results-and-graphs.ipynb file contains parts of the analysis that compare parameters to each other.

- The functions to normalize and denormalize parameter ranges are in /analysis/exp1_scale/Multi-parameter-results-and-graphs.ipynb and are called normalizeParameterValue and denormalizeParameterValue respectively.

- The list of words used for the judgements and comparisons of Exp 1 and Exp 2 are in ./experimental_procedure/found_words.txt

